Skip to content

Developers · Users and Permissions

Signing In a User Manually

Last updated 1 November 2026

This document is a guide to creating an authentication form for users to sign in manually.

Prerequisites

To follow the steps in this tutorial, you must understand the required directory structure for your codebase and understand the concept of pages and users.

Steps

Signing in a user manually is a two-step process:

  • Step 1: Create authentication form
  • Step 2: Create sign in page

Step 1: Create an Authentication Form

app/forms/sign_in.liquid

---
name: sign_in
resource: Session
fields:
  email:
  password:
---
{% form %}
  <label for='email'>Email</label>
  <input name='{{ form.fields.email.name }}' value='{{ form.fields.email.value }}' id='email' type='email'>

  <label for='password'>Password</label>
  <input name='{{ form.fields.password.name }}' id='password' type='password'>
  {% if form.errors.password %}
    <p>{{ form.errors.password }}</p>
  {% endif %}

  <button>Log In</button>
{% endform %}

Step 2: Create Sign-In Page

app/views/pages/sign_in.liquid

---
slug: sign-in
---
<h2>Sign in </h2>
{% include_form 'sign_in' %}
<p>New user? Create <a href='/developer/sign-up'> new developer account</a> or <a href='/client/sign-up'>new client account</a></p>

Note

To set an expiration for user sessions, follow the steps outlined in the 'User Session Timeout' section of the Updating Instance Configuration tutorial.

Next Steps

Congratulations! You created a sign in page for users to sign in manually. Now you can learn about signing in a user automatically after sign up: Signing In a User Automatically after Sign-Up.