Autostrada

Roadmap

Improvements and features that will be coming to Autostrada in the future. Please note that this roadmap isn't set in stone — if there's something that you'd like to see added or prioritized please reach out and let me know. If you'd like to see a list of historical changes, you can also check out the changelog.

High priority developments

Error alerts

Add optional support for automatic error reporting via email.

TLS certificate auto-generation

Add optional support for generating TLS certificates automatically in production (using github.com/caddyserver/certmagic).
User-suggested

Planned developments

Use pgx

Switch to using the github.com/jackc/pgx postgres driver instead of github.com/lib/pq. This is blocked until this issue is resolved.
User-suggested

Tests

Add tests for all functionality in the generated codebases.
User-suggested

Live reload

Add optional support for live reloading of code during development (using github.com/cosmtrek/air).

Email confirmations

Add email confirmation workflow to the "Accounts and Authentication" feature.
User-suggested

Likely developments

Select your Go version

Make it possible to select your preferred Go version when generating a codebase (Go 1.18+ only).
User-suggested

RPC services

Make it possible to generate a skeleton codebase for RPC services.

CLI tools

Make it possible to generate a skeleton codebase for command-line interface tools.
User-suggested

PASETO

Switch to using PASTEO as an alternative to JWT for API authentication.
User-suggested

Server-side sessions

When the generated codebase uses a database, store session data server-side rather than in a cookie.

Rate limiting

Add optional support for IP based rate limiting (using x/time/rate).

Environment-variable based config

Add optional support for reading configuration settings from environment variables (as well continuing support for command-line flag based config).

CORS requests

Add optional middleware with sensible defaults for allowing/restricting cross-origin requests for JSON API applications.

Pick-your-own logger

Add support for picking a logger (logrus, zap, zerolog etc.).
User-suggested

Code comments

Add optional code comments for all code in the generated applications.
User-suggested

Application profiling

Add optional support for application profiling using net/http/pprof.

Metrics

Add optional support for viewing application metrics (like memory and goroutine usage, and DB connection pool statistics).

Background tasks

Add optional support for processing background tasks (and waiting for them to complete during a graceful shutdown).
User-suggested

Evaluate wneessen/go-mail

Evaluate and potentially switch to using github.com/wneessen/go-mail for SMTP.

Possible developments / Ideas

I18N/L10N

Add optional support for applications requiring I18N/L10N functionality (translations, number formatting, date and time formatting, currency etc).

Pagination

Add optional pagination helpers.

Websockets and server-side events

Add optional support for working with websocket connections and server-side events.

OAuth/OpenID connect

Add optional support for authenticating users via OAuth/Open ID connect.

Redis

Add support for Redis as an optional data store.

Email sending services

Add support for sending emails using popular email providers (SendGrid, Postmark, Amazon SES etc.).
User-suggested

CSS frameworks

Make it possible to optionally choose a CSS framework for web applications (like Tailwind and Bootstrap).

LiveView-style tooling

Make it possible to optionally choose HTML-over-the-wire tooling for web applications (like HTMX, Hotwire and Unpoly).

Analytics

Add optional support for server and client side analytics.
User-suggested

Continuous integration with GitHub Actions

Add optional workflow files for running CI checks (using GitHub Actions).
User-suggested

Sentry

Support sending error alerts to Sentry.

Docker

Add optional support for creating docker-compose and Dockerfiles.
User-suggested

Build and deployment tooling

Add optional support for deploying to popular hosting providers (like Digital Ocean and AWS).

Shareable application configurations

Add support for shareable, reproducible, Autostrada application configurations.
User-suggested