<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: pidrang</title>
    <description>The latest articles on DEV Community by pidrang (@pidrang).</description>
    <link>https://dev.to/pidrang</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4184981%2F98a000db-8ca7-41aa-aef3-08262e632d43.png</url>
      <title>DEV Community: pidrang</title>
      <link>https://dev.to/pidrang</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pidrang"/>
    <language>en</language>
    <item>
      <title>Pidrang 0.1.1: a working Angular admin from your Supabase schema</title>
      <dc:creator>pidrang</dc:creator>
      <pubDate>Wed, 11 Nov 2026 14:05:21 +0000</pubDate>
      <link>https://dev.to/pidrang/pidrang-011-a-working-angular-admin-from-your-supabase-schema-3jho</link>
      <guid>https://dev.to/pidrang/pidrang-011-a-working-angular-admin-from-your-supabase-schema-3jho</guid>
      <description>&lt;p&gt;Pidrang &lt;a href="https://npm.io/package/pidrang" rel="noopener noreferrer"&gt;0.1.1&lt;/a&gt; is now on npm. With the first version (0.1.0), &lt;code&gt;pidrang init&lt;/code&gt; wrote the pages, but you still installed the packages, wired four files by hand, and could not save anything without writing a sign-in page. &lt;br&gt;
With this new version (0.1.1), a fresh Angular app gets a working admin from one command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ng new my-admin
&lt;span class="nb"&gt;cd&lt;/span&gt; my-admin
npx pidrang init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Answer the questions, put your Supabase publishable key in the two environment files, run &lt;code&gt;ng serve&lt;/code&gt; and you get a list, create, show and edit page for each table you choosed, a delete, a sign-in page and a menu of your tables.&lt;/p&gt;

&lt;h2&gt;
  
  
  What &lt;code&gt;init&lt;/code&gt; does now
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Installs what the pages need.&lt;/strong&gt; It offers to install &lt;code&gt;@pidrang/core&lt;/code&gt;, &lt;code&gt;@pidrang/supabase&lt;/code&gt;, &lt;code&gt;@pidrang/material&lt;/code&gt; and &lt;code&gt;@supabase/supabase-js&lt;/code&gt;, and runs &lt;code&gt;ng add @angular/material&lt;/code&gt;. Say no and it prints the exact commands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wires the app.&lt;/strong&gt; It registers Pidrang and the Supabase client in &lt;code&gt;app.config.ts&lt;/code&gt;, adds the routes to &lt;code&gt;app.routes.ts&lt;/code&gt; and writes both environment files. A file it cannot edit safely gets a comment with the change to make.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generates a sign-in page.&lt;/strong&gt; When your Row Level Security policies only let signed-in users write, the app can now save. Signed out, the pages hide Create, Edit and Delete and the forms say "Sign in to make changes."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lands somewhere useful.&lt;/strong&gt; On a new app, &lt;code&gt;/&lt;/code&gt; opens the first list, and a layout shows a menu of your tables with a Sign in button.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reads your columns better.&lt;/strong&gt; Readable labels, &lt;code&gt;created_at&lt;/code&gt; and &lt;code&gt;updated_at&lt;/code&gt; (also &lt;code&gt;createdAt&lt;/code&gt; and &lt;code&gt;updatedAt&lt;/code&gt;) read-only, lists newest first, and the "database default" hint on create only.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uses the current Supabase key names.&lt;/strong&gt; Publishable and secret, as the dashboard shows them today. The secret key is only used to read your schema; it never goes into the app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Can run again.&lt;/strong&gt; Run &lt;code&gt;init&lt;/code&gt; later to add a table: it adds it to &lt;code&gt;resources.ts&lt;/code&gt; and leaves the rest alone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All the changes are in the &lt;a href="https://github.com/pidrang/pidrang/blob/main/CHANGELOG.md" rel="noopener noreferrer"&gt;changelog&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Known limits
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The generated CRUD pages use Angular Material. The sign-in page and the layout follow Tailwind when your app uses &lt;code&gt;@pidrang/tailwind&lt;/code&gt;; Tailwind CRUD pages are planned (&lt;a href="https://github.com/pidrang/pidrang/issues/61" rel="noopener noreferrer"&gt;#61&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;A new app is over Angular's default 500 kB initial budget (&lt;a href="https://github.com/pidrang/pidrang/issues/172" rel="noopener noreferrer"&gt;#172&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Dates show as raw ISO text (&lt;a href="https://github.com/pidrang/pidrang/issues/187" rel="noopener noreferrer"&gt;#187&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;If you run &lt;code&gt;init&lt;/code&gt; again before setting the key, Next steps no longer reminds you to replace the placeholder (&lt;a href="https://github.com/pidrang/pidrang/issues/192" rel="noopener noreferrer"&gt;#192&lt;/a&gt;, planned for 0.1.2).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it, help shape it
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://pidrang.dev/demos/" rel="noopener noreferrer"&gt;Live demos&lt;/a&gt;, on Angular Material and on Tailwind, built from 0.1.1.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://pidrang.dev/docs/getting-started" rel="noopener noreferrer"&gt;Getting started&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Seven &lt;a href="https://github.com/pidrang/pidrang/labels/good%20first%20issue" rel="noopener noreferrer"&gt;good first issues&lt;/a&gt; are open, each with the files to look at and what "done" means. A first pull request is welcome.&lt;/li&gt;
&lt;li&gt;Tell us what you are building in &lt;a href="https://github.com/pidrang/pidrang/discussions" rel="noopener noreferrer"&gt;Discussions&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pidrang is MIT licensed and pre-1.0: the API may still change between minor version&lt;/p&gt;

</description>
      <category>angular</category>
      <category>supabase</category>
      <category>opensource</category>
      <category>release</category>
    </item>
  </channel>
</rss>
