banner image

Project Update May, 2024: Templify Progress and Features

New features, project migration and what's next!

By Marius

Last updated May 22, 2024

Development for the Templify App is a bit on and off due to it being on a strictly voluntary basis. With that said, I got some news to share!

App project migration

We've migrated the project from Next.js 13 with pages to Next.js 14 with app router and refactored a large portion of the codebase.

Getting assistance backend

Francisco Almeida has been assisting with Supabase and getting a local instance of Supabase up and running.

This is very useful as we can make changes locally, have a version control on the database structure and we can push changes to production using the Supabase CLI.

New features implemented

Adding code blocks with individual copy buttons

If you're working in an environment where you have to use the CLI, like we do, then you'll notice that repeating one liners are hard to remember. You could use sticky notes or documentation tools like Obsidian or Confluence, but they don't have the placeholders inside the code blocks, which is something I really wanted as a feature for this app, as I personally and professionally really appreciate this feature.

"Image showing a template card with code blocks"

Darkmode set serverside

In react I always had problem with setting darkmode. I didn't find a good solution for layout flickering, which happens because of the fact that useEffect will run after the layout has rendered. This means that the layout will render first with a white background and then it will render the dark theme. This looks pretty sloppy to me.

Pre-rendering the component including darkmode on the server fixes this issue. It means you have to have a column in the user table for storing a boolean for darkmode.

"Image of the application in darkmode"

Display card grid option

Having the cards as a single column might not always be the best idea, which is my experience using this app. Since a lot of my template cards don't actually contain that much text, it's not necessary for them to take up so much width. Having a two column grid helps a lot with this.

"Image showing the application including the template card grid"

Organisation and teams functionality

Overview

Taking inspiration from services I use, like Supabase and Vercel, we've come up with a similar freemium model. The service is free to use as a single user. If you decide to create an organisation, you have to pay per invited member to that organisation, which is how Vercel does it, just that they call it a team and not an organisation.

When you create an organisation, you can then create template groups, which might be called teams. We haven't quite decided on the naming yet. A team (or template group) is a group that holds specific templates and you can add your invited users accross different teams and set their access level. What is benefitial here is that you can have a group of templates for your sales team and another set for the HR team.

Organisation

  • Billing
  • Managing users (invite and delete)

Team (or template group)

  • managing the templates
  • manage access to the template groups

We also have a few roles, which is the organisation owner, organisation administrator, team leader, and member. These roles represent different access levels.

Design and prototyping

I've completed most of the prototyping for the administrational features. The next phase is to get to work on implementing the new database design and bring this to life in Next.js. This means a lot of work and given our fulltime commitments to our jobs, it might take some time until this is done, but we hope to get it done this year.

Conclusion

Like initially stated, the development is moving in phases where we have the time to work on this project, but we've come a long way and with the final push, you should be able to use this app.